const router = require('koa-router')()
const jsonwebtoken = require('jsonwebtoken')
const { secret } = require('../config')
const jwt = require('koa-jwt')
const userControl = require('../controller/user')

router.prefix('/api')

// 认证就是从token中获取信息并且解析信息
// const auth = async (ctx, next) => {
//    // 短路语法，防止报错
//   //  console.log(ctx.request.header, 'header')
//   const { authorization = '' } = ctx.request.header;
//   const token = authorization.replace('Bearer ', '')
//   try {
//     const user = jsonwebtoken.verify(token, secret)
//     console.log(user, 'user')
//     ctx.state.user = user
//   } catch(err) {
//     ctx.throw(401, err.message) 
//   }
//   await next()
// }
const auth = jwt({ secret })

// 登陆
router.post('/login', userControl.login)

// 查
router.get('/users',  userControl.find)

// 查id
router.get('/users/:id', userControl.findId)

// 增
router.post('/add', userControl.add)

// 修改
router.patch('/:id', auth, userControl.checkOwner, userControl.updateById)

// 删除
router.delete('/:id', auth, userControl.deleteById)

module.exports = router;